Optical character recognition (OCR) refers to a field of research in pattern recognition, artificial intelligence, and computer vision. Today, the term “OCR” generally refers to a computer's ability to recognize printed letters, numerals, or symbols (i.e., optical characters) as discrete entities.
In performing an OCR process, an OCR device (e.g., a special computing device such as a handheld scanner with built-in OCR software) works with a scanning device or camera that first captures an image of a printed page. The OCR software is operable to analyze the image and attempt to identify any optical characters from the image, for instance, by pattern matching.
Depending upon many factors such as the quality of the printed material, the quality of the image, the complexity of the image itself, etc., accuracy of OCR outputs may vary widely from one OCR device to another. Because even a single character error can lead to a loss of meaning or misinterpreting context, OCR accuracy can be critically important in some cases.
For example, enterprises often use OCR to reduce human data entry, save time, and reduce human errors. In such cases, high quality OCR which can produce perfect results is not only desired, but may also be required, for instance, for regulation compliance reasons. Due to the computational power needed, high quality OCR is typically performed at the server side, for example, on an OCR server operating in an enterprise computing environment.
With the advent of the Internet and Internet-connected mobile devices such as mobile phones and tablets, OCR can be used by mobile device applications to extract text captured using a mobile device's camera. For example, a mobile device application running on a mobile device may send (e.g., through an OCR application programming interface (API)) an image file captured by the mobile device to an OCR server computer for further processing. The OCR server may analyze the image file and extract text from the image file.
In some cases, the image file may be compressed to reduce the file size and thus improve throughput. However, the reduction in file size is inversely related to the quality of the image. That is, while reducing the file size of an image may increase the speed by which an OCR result can be obtained, the OCR result may be less than perfect due to the reduced image quality caused by the file size reduction. For applications where highly accurate OCR results are desired or needed, the image size can be very important. As a result, high quality OCR operations usually have lower throughput, particularly when image data is transmitted over a network.
In view of the foregoing, there is room for innovations and improvements in the field of data recognition.